package com.qfjy.homeWork.fengzhenghui;

/**
 * @Author 小白
 * @Date 2021-11-20 17:27
 *观察者模式：
 *      当对象间存在一对多关系时，则使用观察者模式（Observer Pattern）。
 *      当一个对象被修改时，则会自动通知依赖它的对象。观察者模式属于行为型模式。
 *主要解决：一个对象状态改变给其他对象通知的问题，而且要考虑到易用和低耦合，保证高度的协作
 *关键代码：在抽象类里有一个 ArrayList 存放观察者们。
 *
 * 优点： 1、观察者和被观察者是抽象耦合的。
 *       2、建立一套触发机制。
 * 缺点： 1、如果一个被观察者对象有很多的直接和间接的观察者的话，将所有的观察者都通知到会花费很多时间。
 *       2、如果在观察者和观察目标之间有循环依赖的话，观察目标会触发它们之间进行循环调用，可能导致系统崩溃。
 *       3、观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的，而仅仅只是知道观察目标发生了变化。
 */


/**
 * 创建抽象观察者类
 * 特点:
 *      1、一个主题
 *      2、一个抽象状态方法
 * */
public abstract class Observer {
    protected Subject subject;
    public abstract void update(String status);
}
